package com.zenithmind.coding.pojo.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.zenithmind.common.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 测试用例实体类
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("coding_test_case")
@Schema(description = "测试用例实体")
public class TestCase extends BaseEntity {

    /**
     * 问题ID
     */
    @Schema(description = "问题ID")
    private String problemId;

    /**
     * 测试用例编号
     */
    @Schema(description = "测试用例编号")
    private Integer caseNumber;

    /**
     * 输入数据
     */
    @Schema(description = "输入数据")
    private String inputData;

    /**
     * 期望输出
     */
    @Schema(description = "期望输出")
    private String expectedOutput;

    /**
     * 测试用例类型（1-样例，2-普通，3-强数据，4-边界）
     */
    @Schema(description = "测试用例类型（1-样例，2-普通，3-强数据，4-边界）")
    private Integer type;

    /**
     * 测试用例权重
     */
    @Schema(description = "测试用例权重")
    private Integer weight;

    /**
     * 是否公开（0-否，1-是）
     */
    @Schema(description = "是否公开（0-否，1-是）")
    private Integer isPublic;

    /**
     * 是否启用（0-否，1-是）
     */
    @Schema(description = "是否启用（0-否，1-是）")
    private Integer isEnabled;

    /**
     * 输入文件路径
     */
    @Schema(description = "输入文件路径")
    private String inputFilePath;

    /**
     * 输出文件路径
     */
    @Schema(description = "输出文件路径")
    private String outputFilePath;

    /**
     * 输入数据大小（字节）
     */
    @Schema(description = "输入数据大小（字节）")
    private Long inputSize;

    /**
     * 输出数据大小（字节）
     */
    @Schema(description = "输出数据大小（字节）")
    private Long outputSize;

    /**
     * 测试用例描述
     */
    @Schema(description = "测试用例描述")
    private String description;

    /**
     * 创建者ID
     */
    @Schema(description = "创建者ID")
    private String creatorId;

    /**
     * 创建者名称
     */
    @Schema(description = "创建者名称")
    private String creatorName;

    /**
     * 排序值
     */
    @Schema(description = "排序值")
    private Integer sortOrder;
}
